home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / READMEFiles / SigProc2.0.README < prev    next >
Text File  |  1992-08-29  |  25KB  |  517 lines

  1.  
  2.  
  3.                           (Public Domain)
  4.  
  5.          Signal Processing Packages (SPP) and Notebooks 2.72
  6.                                for
  7.                   Mathematica Version 1.2 and higher
  8.  
  9.                                 by
  10.  
  11.               Brian Evans, James McClellan, Kevin West,
  12.             Wallace McClure, Lina Karam, and James Proctor
  13.  
  14.                Digital Signal Processing Laboratory
  15.                  School of Electrical Engineering
  16.                  Georgia Institute of Technology
  17.                      Atlanta, GA  30332-0250
  18.  
  19.                       evans@eedsp.gatech.edu
  20.  
  21.  
  22. ---> Introduction
  23.  
  24.         This is an unsupported release  of  Mathematica  code  for symbolic
  25. signal processing copyrighted by The Georgia Tech Research Foundation. Once
  26. installed (see below),  this  collection  of  Mathematica  packages  can be
  27. loaded by any user.  Bundled with the packages  are  many Notebooks.  Those
  28. that are tutorials are:   AnalogFilters,  DTFT,  PiecewiseConvolution,  and
  29. zTransform (in  three  parts).   The other Notebooks serve as on-line help:
  30. EducationalTool,  LaPlaceTest,  README,  SignalProcessingExamples,  Signal-
  31. ProcessingIntroduction, and SignalProcessingUsage.   They  demonstrate  the
  32. abilities of these packages.   A complete set of references is given at the
  33. end of this file.
  34.  
  35.  
  36. ---> Index of Files
  37.  
  38.         The files that contain  a  complete  set  of the signal processing
  39. packages and Notebooks for Mathematica are:
  40.  
  41.      SigProc2.0.tar.Z          compressed tar file for Unix systems
  42.      SigProc2_IBM_PC.zip       zip file for the IBM PC running MS-DOS
  43.      SigProc2.0.mac.sea.hqx    binhexed self-extracting archive for Mac
  44.  
  45. Please transfer these  files  as  binary files.  In the case of the IBM PC
  46. version, the release was loaded on to a PC,  zipped,  and  reloaded on the
  47. FTP  site.   All  of  the  file names have been truncated so that they are
  48. unique.   In  the  case of the Mac version, the release was loaded on to a 
  49. Macintosh---  the files  were  then  converted  to  Mathematica format and
  50. archived using Compact Pro 3.1 into one self-extracting archive. The self-
  51. extracting archive was then run through BinHex 4.0 and put on the FTP site.
  52.         Other files of interest are:
  53.  
  54.      CHANGES                   text file documenting changes in code
  55.      README                    this text file
  56.      StanfordNotebooks.tar.Z   Notebooks from CCRMA at Stanford (see
  57.                                "Related Archive Sites Below")
  58.      VERSION-x.xx              indicates the FTP site has version x.xx
  59.      c-src.tar                 a tar file of useful C programs
  60.      math.el                   configuration file for Emacs so that
  61.                                Emacs becomes a front-end to Mathematica
  62.      usage.ps                  PostScript version of the reference guide
  63.      usage.tex                 TeX version of the reference guide
  64.      usersguide.ps             PostScript version of the user's guide
  65.      usersguide.tex            TeX version of the user's guide
  66.  
  67.  
  68. --> Installation on an IBM PC
  69.  
  70.         After downloading "SigProc2.zip", move the zip file to a directory
  71. other than the one in which Mathematica is installed.  Then, type
  72.  
  73.      ms-dos> unzip -d SigProc2.zip
  74.  
  75. You  can see all of the possible options for unzip by typing just "unzip".
  76. If your machine cannot find "unzip", try "pkunzip".  If  that  fails, then
  77. acquire  a  copy  of  "unzip" (which is in the public domain) or "pkunzip"
  78. (which is shareware).  The unzipped  archive  will  produce a Packages and
  79. a Notebooks directory. You will need to edit Mathematica's "init.m" to add
  80. the new directory to Mathematica's $Path variable.  The command to do this
  81. is "$Path = Append[$Path, <new_path>]" where <new_path> is the new direc-
  82. tory path surrounded by double quotes.
  83.  
  84.  
  85. ---> Installation on a NeXT Machine
  86.  
  87.         Move the file "SigProc2.0.tar.Z" into a  temporary directory.  Then
  88. evaluate the Unix  commands  "uncompress SigProc2.0.tar.Z" and then "tar xf
  89. SigProc2.0.tar".   It will create a Packages and a Notebooks directory.  To
  90. move them to a standard place, type the following Unix commands:
  91.  
  92.      NeXT-Unix> cp -r Packages /LocalLibrary/Mathematica
  93.      NeXT-Unix> cp -r Notebooks /LocalLibrary/Mathematica
  94.  
  95. The SPP will be in /LocalLibrary/Mathematica/Packages/SignalProcessing and
  96. the SP Notebooks  will  be /LocalLibrary/Mathematica/Notebooks in the sub-
  97. directories Handouts, Help, and Tutorials.
  98.  
  99.  
  100. --> Installation on a Unix Workstation Other Than a NeXT
  101.  
  102.         Move the file "SigProc2.0.tar.Z" into a temporary directory.   Then
  103. evaluate the Unix  commands  "uncompress SigProc2.0.tar.Z" and then "tar xf
  104. SigProc2.0.tar".   It will create a Packages and a Notebooks directory.  To
  105. move them to a standard place, type the following Unix commands:
  106.  
  107.      Unix> cp -r Packages /usr/local/math
  108.  
  109. If  you  cannot  write to /usr/local/math, then put the packages in another
  110. directory  and edit Mathematica's "init.m" file to add the new directory to
  111. Mathematica's $Path variable  by saying "$Path = Append[$Path, <new_path>]"
  112. where <new_path> is the new directory.
  113.         Once there is a Notebook reader under X Windows,  then you can move
  114. the Notebooks to a "standard" place by evaluating
  115.  
  116.      Unix> cp -r Notebooks /usr/local/math
  117.  
  118. Otherwise, you can discard the Notebooks (for documentation, refer  to  the
  119. TeX files "usage.tex" and "usersguide.tex".
  120.  
  121.  
  122. ---> Installation on a Macintosh
  123.  
  124.         Download "SigProc2.0.mac.sea.hqx" to  your Macintosh in a temporary
  125. directory.   Run BinHex 4.0 on it (with the Text Filter option disabled) to
  126. produce "SigProc2.0.mac.sea" which  is  a  self-extracting  archive.   Now,
  127. double click on the .sea file, and it will produce a Packages and Notebooks
  128. folder.   Move the SignalProcessing folder in the Packages folder to Mathe-
  129. matica's Packages folder. You can keep the Notebooks anywhere you want such
  130. as in one of the Mathematica folders.  Also, please see the note below.
  131.  
  132.  
  133. ---> Macintosh Users
  134.  
  135.         Please let Mathematica allocate as much memory as possible.  I give
  136. it 8000 kb.  You can check the value  by  clicking  once on the Mathematica
  137. icon and select the Get Info option from the Finder's File menu.  It is the
  138. number that appears in the lower left-hand corner of the info window.
  139.         If you  are  using Mathematica 1.2, please make sure that the start
  140. up procedure includes the loading of the Elliptic functions, symbolic inte-
  141. gration, and Series packages.
  142.  
  143.  
  144. ---> Warning
  145.  
  146.         A warning about opening some Notebooks under Mathematica 2.0.   The
  147. signal processing Notebooks are appear in their ASCII form. The binary side
  148. information like graphic bit maps are not included so Mathematica will have
  149. to regenerate them from the ASCII Notebook.  In Mathematica 2.0 and higher,
  150. the Notebook will generate all missing  bit  maps for graphics contained in
  151. a Notebook, and  it  will  inform the user by saying "Rendering ..." in the
  152. header of the window containing the Notebook.   Each bitmap roughly adds 20
  153. kb to the memory required by the Notebook.   Some Notebooks will double and
  154. triple in size.   Under Mathematica 1.2, it only generates missing bit maps
  155. as needed (i.e., when you want to see the picture).
  156.  
  157.  
  158. ---> Related Archive Sites
  159.  
  160.         An additional set of related Notebooks  is  available  in  the same
  161. anonymous FTP site (gauss.eedsp.gatech.edu  or  IP # 130.207.226.24) in the
  162. compressed tar file "StanfordNotebooks.tar.Z"  (which is also available for
  163. the PC in zip form as well).   These three Notebooks investigate the use of
  164. windows in masking data and designing filters.
  165.         Another set of Notebooks  that  describe cochlear signal processing
  166. and analog filter design, written  by  Malcolm  Slaney, are available from
  167. Apple Inc. via anonymous FTP to ftp.apple.com.   They are available free of
  168. charge  by  sending e-mail to corp.lib@applelink.apple.com which comes with
  169. a hard copy version.
  170.         The Mathematica Special Interest Group  runs  a very large FTP site
  171. at  yoda.physics.unc.edu  (IP #128.109.180.137).  It does contain the Note-
  172. books written by Malcolm Slaney as  well  as  a  version of the signal pro-
  173. cessing packages and Notebooks.
  174.         A set of controls  packages have been developed based on the signal
  175. processing packages.   Accompanying the set  of  controls packages is a set
  176. of Notebooks  that  follow  Ogata's  1991 textbook "Modern Control Theory".
  177. COSYPAK and COSYNOTES are available via anonymous FTP to veda.esys.cwru.edu
  178. (IP #129.22.40.9).
  179.  
  180.  
  181. ---> Getting started
  182.  
  183.         The Mathematica file "Master.m" loads in all the necessary files
  184. under Mathematica 1.2 but only tells Mathematica 2.0 where to find all of
  185. the new routines.  Load it in by Needs["SignalProcessing`Master`"].
  186.         The one-dimensional/two-dimensional  signal  analyzing  functions
  187. DSPAnalyze  and  ASPAnalyze  are  good  examples of the code's ability to
  188. switch between  symbolic,  numeric,  and  graphical  representations (the
  189. hooks being provided by Mathematica). The four symbolic transform objects
  190. ZTransform,  InvZTransform,  InvLaPlace,  and  LaPlace  demonstrate their
  191. ability to  handle  multidimensional transforms and the region of conver-
  192. gence.  (The other transform objects are  CTFTransform,  InvCTFTransform,
  193. DFTransform, InvDTFTransform, DTFTransform, and InvDTFTransform.)  All of
  194. the transforms can completely justify  their  answers  by displaying each
  195. step of the transformation process (use the option Dialogue -> True).
  196.         Besides the examples in the ICASSP '90 paper, [1] try
  197.  
  198.   1. ASPAnalyze[ t Exp [ - 4 t / 5 ] Cos [ 3 Pi t / 4 ] CStep[t], t ]
  199.   2. DSPAnalyze[ n (4/5)^n Step[n], n ]
  200.   3. DSPAnalyze[ (4/5)^n1 Impulse[n1 - n2] Step[n1,n2], {n1,n2} ]
  201.   4. ASPAnalyze[ Exp[- 4 t1 / 50] Delta[t1 - t2] CStep[t1,t2], {t1,t2} ]
  202.   5. DSPAnalyze[ (1/2)^n1 (2/5)^n2 Multinomial[n1,n2] Step[n1,n2], {n1,n2} ]
  203.  
  204. Note that the  analog analyzer (ASPAnalyze) only displays the interesting
  205. section of magnitude and phase plots (part encompassing the breakpoints).
  206. Also, note that two-dimensional  pole-zero  plots are actually root maps,
  207. unless the  two-dimensional  transform  is  separable (then two pole-zero
  208. plots will be displayed).  Note that
  209.  
  210.   a.  Delta is the Dirac delta function,
  211.   b.  Impulse is the unit Kronecker delta function, and
  212.   c.  Mathematica's Laplace transform is Laplace whereas mine is LaPlace.
  213.  
  214. The paper  entitled  "Symbolic  Transforms  with  Applications  to Signal
  215. Processing"[2] gives Mathematica's output for four of the examples above.
  216.  
  217.  
  218. ----> Transform Capabilities
  219.  
  220.      Fourier, Laplace and z-transforms are useful for analyzing linear
  221. systems and signal processing operations.  We have implemented packages
  222. for all the transforms commonly used in signal processing:
  223.  
  224.      (discrete signals)    z-transform
  225.                            discrete-time Fourier transform
  226.                            discrete Fourier transform
  227.  
  228.      (continuous signals)  Laplace transform
  229.                            Fourier transform
  230.  
  231. This implementation of the transforms is very general in that multi-
  232. dimensional versions.  The packages also track properties of the trans-
  233. forms, so it is also possible to deduce the stability or instability of
  234. a linear system.  Using the transforms, the packages can solve
  235. linear constant-coefficient difference and differential equations
  236. for right-sided (defined for t > t0) and left-sided (defined for t < t0)
  237. functions.
  238.  
  239.  
  240. ---> Knowledge Representation for Signals and Systems
  241.  
  242.      We have added many functions (signal primitives) and operators
  243. (system primitives) that are common in signal processing and linear
  244. systems theory but missing in Mathematica:
  245.  
  246.      (basic signals)    Kronecker impulse, Dirac delta, sinc,
  247.                         continuous and discrete step functions,
  248.                         continuous and discrete pulse functions,
  249.                         aliased sinc, filter representations
  250.  
  251.      (basic operators)  aliasing, convolution, DFT, DTFT, backward
  252.                         difference, downsampling, Fourier transform,
  253.                         interleave samples, Laplace transform,
  254.                         periodic, reverse, scale axis, shift,
  255.                         summation, upsampling
  256.  
  257. The transform packages support all of these new objects.
  258.  
  259.  
  260. ---> Other Abilities of These Packages
  261.  
  262.      (continuous signals)  analog 1-D filter design
  263.                            1-D piecewise convolution
  264.                            plots of 1-D and 2-D signals
  265.  
  266.      (discrete signals)    1-D convolution
  267.                            plots of 1-D and 2-D sequences
  268.  
  269.      (general plotting)    pole-zero diagrams
  270.                            root loci
  271.                            frequency responses
  272.  
  273.  
  274. ---> Signal Processing Notebooks
  275.  
  276.      In order to extend the use of these extensions in the educational
  277. environment, we have written several Notebooks on subjects that are
  278. studied in transform theory and signal processing courses:
  279.  
  280.      (tutorial Notebooks)   z-transform (in three parts)
  281.                             piecewise convolution
  282.                             analog filter design
  283.                             discrete-time Fourier transform
  284.  
  285.      (directed help/guide)  signal processing examples
  286.                             introduction to Mathematica and SP packages
  287.                             Mathematica as an educational tool
  288.                             Laplace transform
  289.  
  290.      (reference guide)      signal processing usage information
  291.  
  292. In the tutorial Notebooks, we give numerous examples such as might be
  293. found in a standard textbook and solve problems that are at the level
  294. of elementary homework problems.  We use the Notebook's animation
  295. ability whenever possible.  In the analog filter design Notebook, for
  296. example, we illustrate the dependence of the filter's magnitude
  297. response on the filter order (and elsewhere on the ripple
  298. control parameter) as an animation sequence.
  299.  
  300.  
  301. --> Hierarchical Relationship Between Files
  302.  
  303.         The Mathematica  packages  are grouped            OORBP
  304. into  four  categories:   supporting routines,           /     \
  305. digital  signal  processing packages (DSPRBP),     DSPRBP       ASPRBP
  306. analog  signal  processing  packages (ASPRBP),           \     /
  307. and object-oriented extensions (OORBP).                  SUPPORT
  308.         The supporting routines are maintained
  309. in six files (as shown  on  the right).  These
  310. are kept in the Mathematica  package directory                TransSupport.m  S
  311. SignalProcessing/Support.  "SupCode.m" defines Convolution.m       |          U
  312. general  purpose  Mathematica   routines  like     |          -----+-----     P
  313. Second,  SeriesQ,  ToList,  GenerateCode,  and     |         |           |    P
  314. PrintIt (which sends  Mathematica  output to a     |         |         ROC.m  O
  315. a PostScript printer).    The file "SigProc.m"     |         |           |    R
  316. establish the representation  of common signal     |   FilterSupport.m   |    T
  317. processing operators  (like  Upsample,  Shift,     |        /            |
  318. and Convolve),  as  well as common signal pro-     SigProc.m             |
  319. cessing functions  (like Step, CStep, Impulse,          |                | 
  320. Delta, and Sinc).  "ROC.m" defines routines to           -----+----------
  321. extract  and  combine  regions  of convergence                |
  322. (ROC's),  where an ROC is one open interval of             SupCode.m
  323. points.   The file  "FilterSupport.m"  defines
  324. filter objects like IIR, FIR, and IIRFunction,
  325. as well as filter types like Butterworth and Elliptic.  The remaining file
  326. is "TransSupport.m" which provides a general set of routines to aid in the
  327. writing of transformation rule bases, extends Mathematica's graphics capa-
  328. bilities  (to include magnitude/phase responses, pole-zero diagrams, root-
  329. loci),  and  defines  tools  for stability analysis LSI systems.  The file
  330. "Convolution.m" defines one-dimensional  piecewise discrete and continuous
  331. convolution.
  332.         The digital signal  processing  routines  are  maintained  in  the
  333. hierarchy shown on the next page. These files are maintained in the Mathe-
  334. matica package  directory  under  SignalProcessing/Digital.  Most files in
  335. the DSPRBP rely  on  the  forward  and inverse z-transform capabilities in
  336. "ZTransform.m" and "InvZTransform.m", respectively, which  in  turn depend
  337. on the file "ZSupport.m".   "ZSupport.m" defines  the  z-transform  object,
  338. supporting routines for  rule  writing, and  checking for valid transforms.
  339. The files "DTFT.m" and "DFT.m" contain  the  rules  for  the discrete-time
  340. Fourier transform and  the  discrete Fourier transform, respectively.  The
  341. file  "DSPAnalyze.m"  provides  a  powerful  analyzer  of  one-  and  two-
  342. dimensional signals generated  by  linear,  shift-invariant systems.  This
  343. routine graphs a signal  in  the  time-domain, prints out its z-transform,
  344. indicates conditions for the sequence to be stable, displays its pole-zero
  345. diagram, gives its DTFT, and plots its magnitude and phase responses.  The
  346. package "ZSolve.m" provides  the  ability  to solve linear, constant coef-
  347. ficient difference equations.
  348.  
  349.                                            |
  350.                          ----------+-------+---------
  351.                         |          |                 |
  352.         DSPAnalyze.m   DFT.m       |                 |                   D
  353.             |           |          |                 |                   I
  354.              -----------+          |                 |                   G
  355.                         |          |                 |                   I
  356.                       DTFT.m    ZSolve.m        Correlation.m            T
  357.                         |          |                 |                   A
  358.              -----------+        --+-----------------+------             L
  359.             |           |       |                           |
  360.             |          ZTransform.m                   InvZTransform.m
  361.             |                   |                           |
  362.             |                    ---------------------------
  363.             |                                  |
  364.         DSupport.m                       ZSupport.m
  365.             |                                  |
  366.              ----------------------------------
  367.                            |
  368.  
  369.         The analog signal processing  packages  are  arranged in a similar
  370. manner, as shown below. "LaPlace.m" and "InvLaPlace.m" provide the forward
  371. and inverse Laplace transforms, which  are  able  to transform expressions
  372. involving signal processing operators and functions. Note that the Laplace
  373. transform extensions released by Wolfram Research only do one-dimensional,
  374. one-sided transforms and  are  biased  toward  higher  order  mathematical
  375. functions (which are common in physics).   Ours work for multidimensional,
  376.  
  377.  
  378.                      ASPAnalyze.m
  379.                     |            |
  380.                     |        Fourier.m      LSolve.m                     A
  381.                     |            |             |                         N
  382.                     |        ----+-------------+----                     A
  383.                     |       |                       |                    L
  384.                     LaPlace.m                  InvLaPlace.m              O
  385.                         |                            |                   G
  386.                          --------+------------------
  387.                                  |
  388.         FilterDesign.m        LSupport.m
  389.               |                  |
  390.  
  391. multi-sided  functions  and,  therefore,  track the region of convergence.
  392. ASPAnalyze provides the same capabilities as does the DSPAnalyze.
  393.         The top layer  is  not  yet  included  with  the signal processing
  394. packages.   It  implements  properties  of  signals and systems, including
  395. routines that reason about them.  Because this code implements some of the
  396. work of Gary Kopec, Cory Myers, and Michele Covell,  we  originally called
  397. it  the  object-oriented  signal  processing packages, which is a misnomer
  398. because Mathematica is object-oriented.   Anyway, the files "Signal.m" and
  399. "System.m" provide  signal  and  system  definitions, respectively.  Since
  400. Mathematica is formula-based,  it can compute signal values in a point-by-
  401. point fashion. These new packages add array-based, stream-based, and state
  402. machine-based signals.  This will  eventually  allow  simulation of a wide
  403. variety of signals and systems.
  404.  
  405.  
  406. ---> Alteration of Standard Mathematica Routines
  407.  
  408. 1.  the first argument to ClearAttributes and SetAttributes is held,
  409. 2.  the determinant Det of a number is that number, and
  410. 3.  the dot product (Dot) of two numbers is their product.
  411.  
  412.  
  413. ---> Disclaimer and Future Releases
  414.  
  415.         This software is  the   property of the Georgia Tech Research Cor-
  416. poration.  We have signed a licensing agreement with Wolfram Research Inc.
  417. (WRI) so that WRI can distribute the extensions.  The Mathematica Journal
  418. also has the rights to distribute an earlier version of the packages.
  419.         I would like  to  know  if  you  find bugs in it.  I have stopped
  420. mailing new releases since I post updated code in anonymous FTP locations.
  421.  
  422. Brian L. Evans and James H. McClellan
  423. Georgia Tech, School of Electrical Engineering, Atlanta, GA  30332-0250
  424. USENET:   ...!{allegra,hplabs,ulysses}!gatech!eedsp!evans
  425. INTERNET: evans@eedsp.gatech.edu
  426.  
  427.  
  428. ---> Suggestion
  429.  
  430.         Please, please, use lower  case  one-letter  symbols as variables
  431. and do not  assign values to them.  This includes variables like n, t, x,
  432. and y, as well as t1, t2, etc.   Use  one-letter  upper case variables to
  433. represent constants (A, G,...), although Mathematica reserves I and N and
  434. we reserve L and Z.
  435.  
  436.  
  437. ---> Documentation
  438.  
  439.         Most of the documentation is in Notebook format. Since many users
  440. do not have access  to  the  Notebook  interface, I have also include two
  441. LaTeX files: "usage.tex" (reference guide) and "usersguide.tex".  Another
  442. option is to find  a  Macintosh computer and acquire MathReader (from the
  443. anonymous  FTP  sub-directory)  which is a public domain Notebook reader.
  444. MathReader will  at  least allow you to peruse Notebooks but you will not
  445. be able to evaluate any code fragments.
  446.  
  447.  
  448. ---> References on the Signal Processing Packages
  449.  
  450. 1.  Evans, Brian, James McClellan, and Wallace McClure. "Symbolic Trans-
  451.     forms Using DSP Knowledge Bases", Proc. of the 1990 IEEE Inter. Conf.
  452.     on Acoustics, Speech, and Signal Processing. pp. 1775-1778.
  453.  
  454. 2.  Evans, Brian, James McClellan, and Wallace McClure.  "Symbolic Trans-
  455.     forms with Applications to Signal Processing".   Mathematica Journal.
  456.     vol. 1, issue #2.  Dec., 1990.  pp 70-80.
  457.  
  458. 3.  Evans, Brian, and James McClellan. "Transforms for Signal Processing".
  459.     1991 Mathematica Conference. Jan., 1991.
  460.  
  461. ---> References on the Signal Processing Packages and Notebooks
  462.  
  463. 4.  Evans, Brian,  James McClellan,  and  Kevin West.  "Mathematica as an
  464.     Educational  Tool  for  Signal  Processing".  Proc. IEEE Southeastern
  465.     Conference (Southeastcon).  April, 1991.  pp. 1162-1166.
  466.  
  467. 5.  Evans, Brian, and James McClellan.  "Symbolic Analysis of Signals and
  468.     Systems", ch. 3 of Symbolic and Knowledge-Based Signal Processing ed.
  469.     by Alan Oppenheim and Hamid Nawab.   Prentice  Hall, Englewood Cliffs
  470.     (NJ), May, 1992.
  471.  
  472. 6.  Evans, Brian, Lina Karam, Kevin West, and James McClellan.  "Learning
  473.     Signals and Systems with Mathematica." IEEE Transactions on Education
  474.     Feb. 1993
  475.  
  476. ---> References on Transforms
  477.  
  478. 7.  Clements, Mark, and Jerrold Pease. 1989.  "On Causal Linear Phase IIR
  479.     Digital Filters,"  IEEE Transactions on Acoustics, Speech, and Signal
  480.     Processing, vol. ASSP-37, issue #4, pp. 479-484.
  481.  
  482. 8.  Churchill, Ruel. 1958. Operational Mathematics. McGraw-Hill, New York.
  483.  
  484. 9.  Dudgeon, Dan, and Russel Mersereau.  1984.  Multidimensional  Digital
  485.     Signal Processing. Prentice Hall, Englewood Cliffs (NJ).
  486.  
  487. 10. Muth, Eginhard.  1978.  Transform  Methods.  Prentice Hall, Englewood
  488.     Cliffs (NJ).
  489.  
  490. 11. Oberhettinger, Fritz, and Larry Badii. 1973. Tables of Laplace Trans-
  491.     forms. Springer-Verlag, New York.
  492.  
  493. 12. Oppenheim, Alan and Alan Willsky. 1983. Signals and Systems. Prentice
  494.     Hall, Englewood Cliffs (NJ).
  495.  
  496. 13. Oppenheim, Alan, and Ronald Schafer. 1989.  Discrete-Time Signal Pro-
  497.     cessing. Prentice Hall, Englewood Cliffs (NJ).
  498.  
  499. ---> References on Symbolic Signal Processing
  500.  
  501. 14. Covell, Michele. 1989. An Algorithm Design Environment for Signal Pro-
  502.     cessing.  Ph.D. Thesis and RLE Tech. Rep. #549.  MIT, Cambridge (MA).
  503.  
  504. 15. Kopec, Gary. 1980. "The Representation  of  Discrete-Time Signals and
  505.     Systems in Programs."  Ph.D. Thesis. MIT, Cambridge (MA).
  506.  
  507. 16. Kopec, Gary. 1985. "The  Signal  Representation  Language  SRL." IEEE
  508.     Trans. on Acoustics, Speech, and Signal Processing, vol. ASSP-33,
  509.     issue #4, pp. 921-932.
  510.  
  511. 17. Myers, Cory S.  1986.  "Signal Representation for Symbolic and Numeric
  512.     Processing"  Ph.D. Thesis and RLE Tech. Rep. #521. MIT, Cambridge, MA.
  513.  
  514. 18. Oppenheim, Alan, and Hamid Nawab, eds.  {Symbolic and Knowledge-Based
  515.     Signal Processing}. Prentice Hall:  Englewood Cliffs, NJ.  1992.
  516.  
  517.